/**
 * 时钟显示格式转换
 * ibio-develop
 * 2008-11-20 18:36
 */
package com.ibio8.utils {
	/**
	 * 时钟显示格式转换。
	 * 
	 * <p>
	 * 用于各个播放器上的时间显示。
	 * </p>
	 */
	public class DateConvert {
		/**
		 * 将秒转化成 vtm
		 * vtm:video time mark string
		 * <b>注意：这里最多只支持不超过 24 * 60 * 60 秒，即一天</b>
		 * @param	sec		秒数
		 * @param	mode	返的类型
		 * 0 小时 : 分钟 : 秒钟 : 秒钟 . 毫秒
		 * 1 小时
		 * 2 分钟
		 * 3 秒钟
		 * 4 毫秒
		 * 5 小时 : 分钟
		 * 6 分钟 : 秒钟
		 * @return			格式化的时间
		 */
		static public function sec2vtm(seconds:uint, mode:uint = 0):String {
			var milliseconds:Number = (seconds - Math.floor(seconds)) * 1000;
			var d:Date = new Date(0, 0, 0, 0, 0, seconds, milliseconds);
			var currDate:String = "";
			var hour:String =(d.getHours() < 10) ? ('0' + d.getHours()) : String(d.getHours());
			var min:String = (d.getMinutes() < 10) ? ('0' + d.getMinutes()) : String(d.getMinutes());
			//这里需要加上小时转化为分钟的时间
			var min2:String = ((d.getHours() * 60 + d.getMinutes()) < 10) ? ('0' + (d.getHours() * 60 + d.getMinutes())) : String((d.getHours() * 60 + d.getMinutes()));
			var sec:String = (d.getSeconds() < 10) ? ('0' + d.getSeconds()) : String(d.getSeconds());
			var ms:String = (d.getMilliseconds() < 10) ? ('0' + d.getMilliseconds()) : String(d.getMilliseconds());
			switch(mode) {
				case 1:
					currDate = hour;
					break;
				case 2:
					currDate = min;
					break;
				case 3:
					currDate = sec;
					break;
				case 4:
					currDate = ms;
					break;
				case 5:
					currDate = hour + ":" + min;
					break;
				case 6:
					currDate = min2 + ":" + sec;
					break;
				default:
					currDate = hour + ":" + min + ":" + sec + "." + ms;
			}
			return currDate;
		}
		
		/**
		 * 将形如 小时 : 分钟 : 秒钟 : 秒钟 . 毫秒 的时间格式转化成数字秒
		 * @param	vtm	需要转化的时间（eg：小时 : 分钟 : 秒钟 : 秒钟 . 毫秒）
		 * @return		秒（数字类型的时间）
		 */
		static public function vtm2sec(vtm:String):Number {
			var list:Array;
			var ms:Number = 0;
			var s:Number = 0;
			var m:Number = 0;
			var h:Number = 0;
			//如果有毫秒
			if (vtm.indexOf(".") > -1) {
				var temp:Array = vtm.split(".", 2);
				list = temp[0].split(':', 3).reverse();
				ms = Number(temp[1]);
			}else {
				list = vtm.split(':', 3).reverse();
			}
			//
			for (var i:uint = 0; i < list.length; i++) {
				//秒
				if (i == 0) {
					s = Number(list[i]);
				}
				//分
				if (i == 1) {
					m = Number(list[i]);
				}
				//时
				if (i == 2) {
					h = new Number(list[i]);
				}
			}
			return h * 60 * 60 + m * 60 + s + ms / 1000;
		}
	}
}
	